<?php
// 2011-3-18 Modified fetch_array so that it only returns associative indices, not both (row["0"], and row["id"])

require_once("config.php");

class MySQLDatabase {
	
	private $connection;
	public $last_query;
	private $magic_quotes_active;
	private $real_escape_string_exists;
	
	function __construct(){
		$this->open_connection();
		$this->magic_quotes_active = get_magic_quotes_gpc();
		$this->real_escape_string_exists = function_exists("mysql_real_escape_string");
	}
	
	public function open_connection() {
		$this->connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);
		if (!$this->connection) {
			die("Database connection failed: " . mysql_error());
		} else {
			$db_select = mysql_select_db(DB_NAME, $this->connection);
			if (!$db_select) {
				die("Database selection failed: " . mysql_error());
			}
		}
	}
	
	public function close_connection() {
		if(isset($this->connection)) {
			mysql_close($this->connection);
			unset($this->connection);
		}
	}
	
	public function query($sql) {
		$this->last_query = $sql;
		$result = mysql_query($sql, $this->connection);
		$this->confirm_query($result);
		return $result;
	}
	
	public function escape_value($value) {
		if( $this->real_escape_string_exists) { //PHP v4.3.0 or higher
			//undo any magic quore effects so mysql_real_escape_string can do the work
			if( $this->magic_quotes_active) {$value = stripslashes($value);}
			$value = mysql_real_escape_string($value);
		} else { //before PHP v.4.3.0
			// if magic quotes aren't already on then add slashes manually
			if (!$this->magic_quotes_active) { $value = addslashes($value);}
			// if magic quotes are active, then the slashes already exist
		}
		return $value;
	}
	
	public function fetch_array($result_set) {
		return mysql_fetch_array($result_set, MYSQL_ASSOC);
	}
	
	public function num_rows($result_set) {
		return mysql_num_rows($result_set);
	}
	
	public function insert_id() {
		// get the last id inserted over the current db connection
		return mysql_insert_id($this->connection);
	}
	
	public function affected_rows() {
		return mysql_affected_rows($this->connection);
	}
	
	private function confirm_query($result) {
		if (!$result) {
			$output = "Database query failed: " . mysql_error() . "<br /><br />";
			$output .= "Last SQL query: " . $this->last_query;
			die($output);
		}
	}
		
} //end class MySQLDatabase

$database = new MySQLDatabase();
$db =& $database;

//echo $database->escape_value("it's working?<br />");
//$database->close_connection();
?>